As dependence on computers and computer networks increases along with the sophistication and the frequency of attacks on computers and computer networks, the subject of computer security is becoming ever more prominent in the industry. Current computer security techniques are inadequate in protecting application programs and operating systems from malicious software (“malware”)—e.g., viruses, worms, and trojans—designed specifically damage or disrupt a computer system, and other undesirable activity.
Existing access control security models typically rely on a user's credentials to authorize access to resources on a computer. In these models, every process that runs or executes with the same credentials is given the same access rights, whether or not the process needs access to all the resources that is available to the user. Also, a process that needs access to a resource, e.g., to read, write, etc., specifies the required access at the time the resource is accessed.
For example, a user logs on to a personal computer with a user account, and expects to be able to access all word processing documents stored on the personal computer and created using a particular word processing program. In order to satisfy this expectation, a conventional access control security system grants all programs running in the users context permission to access to all of the aforementioned word processing documents. This is a grant of an excess level of permission, however, because few programs running in the user context other than the word processing program actually need to access to any of the word processing documents.
Typically, malware infects processes by exploiting code defects. Once malware runs inside of a compromised process, it inherits the access rights of the user context in which the process is running, and gets access to all resources that are available to the user, which might be far greater than what the original process ever needed.
Accordingly, an integrated approach to access authorization that improves and enhances the security of resources on a computer will have significant utility.